import { ResPage, Option, SysDict } from "@/api/interface/index";
import { CANROCNET } from "@/api/config/servicePort";
import http from "@/api";

/**
 * 新增字典
 *
 * @param params 字典表单
 * @returns 返回是否成功
 */
export const addDictApi = (params: SysDict.Form) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-dict/addition`, params);
};

/**
 * 编辑字典
 *
 * @param params 字典表单
 * @returns 返回是否成功
 */
export const editDictApi = (params: SysDict.Form) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-dict/edit`, params);
};

/**
 * 启用/禁用字典
 *
 * @param params 字典Id
 * @returns 返回是否成功
 */
export const switchEnableDictApi = (params: { id: string }) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-dict/enable`, params);
};

/**
 * 删除字典
 *
 * @param params 字典Id
 * @returns 返回是否成功
 */
export const deleteDictApi = (params: { ids: string[] }) => {
  return http.post<boolean>(`${CANROCNET}/api/sys-dict/del`, params);
};

/**
 * 获取字典分类列表
 *
 * @returns 返回字典类型列表
 */
export const getDictTypeApi = () => {
  return http.get<SysDict.TypeResult[]>(`${CANROCNET}/api/sys-dict/dict-type`, {}, { loading: false });
};

/**
 * 获取字典列表
 *
 * @param params 字典查询参数
 * @returns 返回字典列表
 */
export const getDictPageApi = (params: SysDict.PageParams) => {
  return http.get<ResPage<SysDict.Result>>(`${CANROCNET}/api/sys-dict/page`, params);
};

/**
 * 获取字典选项列表
 *
 * @returns 返回字典选项列表
 */
export const getDictOptionApi = () => {
  return http.get<Option.SelectOption[]>(`${CANROCNET}/api/sys-dict/option`, {}, { loading: false });
};
